home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / utility / utilgraf / newicndt.lha / NewIconDT / Sources / classbase.h < prev    next >
C/C++ Source or Header  |  1996-10-24  |  4KB  |  114 lines

  1.  
  2. /******************************************************************************
  3.  *
  4.  * NewIcon Datatype
  5.  *
  6.  * Written by Pascal Hurni and Christian Buchner and David N. Junod
  7.  *
  8.  ******************************************************************************
  9.  * classbase.h
  10.  *
  11.  */
  12.  
  13. #include <dos/dos.h>
  14. #include <dos/dosextens.h>
  15. #include <exec/types.h>
  16. #include <exec/ports.h>
  17. #include <exec/memory.h>
  18. #include <exec/lists.h>
  19. #include <exec/semaphores.h>
  20. #include <exec/execbase.h>
  21. #include <intuition/classes.h>
  22. #include <intuition/classusr.h>
  23. #include <intuition/cghooks.h>
  24. #include <intuition/gadgetclass.h>
  25. #include <graphics/gfx.h>
  26. #include <graphics/text.h>
  27. #include <libraries/iffparse.h>
  28. #include <datatypes/datatypes.h>
  29. #include <datatypes/datatypesclass.h>
  30. #include <datatypes/pictureclass.h>
  31. #include <string.h>
  32. #include <dos.h>
  33. #include <libraries/newicon.h>
  34.  
  35. #include <clib/macros.h>
  36. #include <clib/dos_protos.h>
  37. #include <clib/exec_protos.h>
  38. #include <clib/intuition_protos.h>
  39. #include <clib/iffparse_protos.h>
  40. #include <clib/graphics_protos.h>
  41. #include <clib/utility_protos.h>
  42. #include <clib/newicon_protos.h>
  43. #include <clib/datatypes_protos.h>
  44. #include <clib/dtclass_protos.h>
  45. #include <clib/alib_protos.h>
  46.  
  47. #include <pragmas/dos_pragmas.h>
  48. #include <pragmas/exec_pragmas.h>
  49. #include <pragmas/intuition_pragmas.h>
  50. #include <pragmas/iffparse_pragmas.h>
  51. #include <pragmas/graphics_pragmas.h>
  52. #include <pragmas/utility_pragmas.h>
  53. #include <pragmas/newicon_pragmas.h>
  54. #include <pragmas/datatypes_pragmas.h>
  55. #include <pragmas/dtclass_pragmas.h>
  56.  
  57. /*****************************************************************************/
  58.  
  59. #define NEWICONDTCLASS        "newicon.datatype"
  60.  
  61. /*****************************************************************************/
  62.  
  63. struct ClassBase
  64. {
  65.     struct Library    cb_Lib;
  66.     UWORD            cb_UsageCnt;
  67.     struct Library    *cb_SysBase;
  68.     struct Library    *cb_DOSBase;
  69.     struct Library    *cb_IntuitionBase;
  70.     struct Library    *cb_GfxBase;
  71.     struct Library    *cb_UtilityBase;
  72.     struct Library    *cb_NewIconBase;
  73.     struct Library    *cb_IFFParseBase;
  74.     struct Library    *cb_DataTypesBase;
  75.     struct Library    *cb_SuperClassBase;
  76.     BPTR            cb_SegList;
  77.  
  78.     struct SignalSemaphore    cb_Lock;        /* Access lock */
  79.     Class            *cb_Class;
  80. };
  81.  
  82. /*****************************************************************************/
  83.  
  84. #define SysBase            cb->cb_SysBase
  85. #define DOSBase            cb->cb_DOSBase
  86. #define UtilityBase        cb->cb_UtilityBase
  87. #define NewIconBase        cb->cb_NewIconBase
  88. #define    IntuitionBase    cb->cb_IntuitionBase
  89. #define    IFFParseBase    cb->cb_IFFParseBase
  90. #define    GfxBase            cb->cb_GfxBase
  91. #define    DataTypesBase    cb->cb_DataTypesBase
  92.  
  93. /*****************************************************************************/
  94.  
  95. /* classbase.c */
  96. Class *__asm ObtainClassEngine ( register __a6 struct ClassBase *cb );
  97. struct Library *__asm LibInit ( register __d0 struct ClassBase *cb , register __a0 BPTR seglist , register __a6 struct Library *sysbase );
  98. LONG __asm LibOpen ( register __a6 struct ClassBase *cb );
  99. LONG __asm LibClose ( register __a6 struct ClassBase *cb );
  100. LONG __asm LibExpunge ( register __a6 struct ClassBase *cb );
  101. LONG __asm LibReserved( register __a6 struct ClassBase *cb );
  102.  
  103. /* dispatch.c */
  104. ULONG setdtattrs ( struct ClassBase *cb , Object *o , ULONG data , ...);
  105. ULONG getdtattrs ( struct ClassBase *cb , Object *o , ULONG data , ...);
  106. Class *initClass ( struct ClassBase *cb );
  107. ULONG __asm Dispatch ( register __a0 Class *cl , register __a2 Object *o , register __a1 Msg msg );
  108. BOOL __asm GetPicture ( register __a6 struct ClassBase *cb , register __a0 Class *cl , register __a2 Object *o , register __a1 struct TagItem *attrs );
  109.  
  110. /* TestProximity.asm */
  111. UWORD __asm TestProximity( register __d1 UWORD r1, register __d2 UWORD g1, register __d3 UWORD b1,
  112.                            register __d5 UWORD r2, register __d6 UWORD g2, register __d7 UWORD b2 );
  113.  
  114.